package vashion.azeroth.core.service;

import java.util.List;

import vashion.azeroth.context.pojo.PersonalFollowContext;
import vashion.azeroth.core.personal.pojo.PersonalFollow;
import vashion.azeroth.core.result.ApiResult;

public interface PersonalFollowService<T> {

	/**
	 * 添加关注
	 * 
	 * */
	public ApiResult<Boolean> addFollow(PersonalFollow personalFollow);

	/**
	 * 取消关注
	 * */
	public ApiResult<Boolean> cancelFollow(PersonalFollow personalFollow);

	/**
	 * 查询我关注的人
	 * */
	public ApiResult<List<PersonalFollowContext>> findFollowdByMe(
			Long memberId, Integer pageNum, Integer pageSize);

	/**
	 * 查询关注我的人
	 * */
	public ApiResult<List<PersonalFollowContext>> findMyFollow(
			Long memberId, Integer pageNum, Integer pageSize);

	/**
	 * 查询会员关系
	 * 
	 * 是否关注
	 * */
	public ApiResult<Integer> isFollowed(Long fansMemberId, Long memberId);

	/**
	 * 加入黑名单,针对position来判断当前位置是 粉丝 还是 被判断的人
	 * 
	 * **/
	public ApiResult<Boolean> followInBlackList(PersonalFollow personalFollow);

}
